package com.qkm.xinguan.repository;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qkm.xinguan.domain.entity.Tourist;
import com.qkm.xinguan.domain.transform.dto.LoginDTO;
import com.qkm.xinguan.domain.transform.dto.NoticeDTO;
import com.qkm.xinguan.domain.transform.dto.TouristLoginDTO;
import com.qkm.xinguan.domain.transform.dto.UpdateTouristDTO;
import com.qkm.xinguan.domain.transform.form.TouristSearchForm;
import com.qkm.xinguan.response.Result;
import com.qkm.xinguan.vo.TouristVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 游客表
 *
 * @author zhangfujing
 * @email 17395183041@163.com
 * @date 2021-12-19 20:16:59
 */
public interface TouristRepository extends IService<Tourist> {
	/**
	 * 检测用户名是否存在
	 *
	 * @param username 用户名
	 * @return boolean
	 */
	boolean checkTouristExist(String username);
	/**
	 * 检测用户名手机号是否存在
	 *
	 * @param phone 手机号
	 * @return boolean
	 */
	boolean checkPhoneExist(String phone);

	Result login(TouristLoginDTO loginDTO);

	/**
	 * @param id
	 * @param updateTouristDTO
	 * @return
	 */
	Result update(Long id, UpdateTouristDTO updateTouristDTO);

	List<String> getTouristNamesByIds(List<Long> ids);

	List<String> getTouristPhonesByIds(List<Long> tourists);

	Page<Tourist> getTouristListPage(Integer page, Integer size);

	Page<Tourist> searchTouristListPage(TouristSearchForm touristSearchForm, Integer page, Integer size);

	int updateTouristStatusById(Long id, Integer status);
}

